Content request routing method

ABSTRACT

A method of redirecting content requests among content distribution network peers. In operation, a client sends a request for content to a content distribution network (CDN). When this CDN does not currently have the capacity to deliver the content, the CDN refers to one or more content distribution tables to see if the neighbour peers are able to provide this content. The content distribution table is populated at the time of distribution of the content. When the neighbour peer has this content, the request is redirected to the neighbour peer. In redirecting request, an address of the neighbour peer is appending to the previous address such that each peer receiving the request knows where the request came from and where it has been previously.

RELATED APPLICATION

This application is a continuation of co-pending U.S. patent applicationSer. No. 10/013,677, entitled “Content Request Routing Method,” whichwas filed on Dec. 13, 2001, and which is hereby incorporated herein byreference in its entirety.

FIELD OF THE INVENTION

The present invention relates to content request routing and isparticularly concerned with routing between content network peers.

BACKGROUND OF THE INVENTION

A current Internet draft “Known Mechanisms for Content Internetworking”by F. Douglas et al. provides a useful overview of contentinternetworking. (Nov. 8, 2001) The use of “Intelligent DNS (IDNS) isdiscussed as a way to handle request redirection.

Content networks play an important role in the overall architecture ofthe web. In the Internet today several approaches have been proposed forproviding infrastructure, at layers 4 through 7, to get content to endusers or user agents in a scalable, reliable, and cost-effectivefashion. In this regard, various protocols and appliances have beendeveloped for the location, download, and usage tracking of content.Examples of such technologies include: web caching proxies, contentmanagement tools, and intelligent web switches.

In general, a content network can be viewed as a virtual content overlaynetwork in the OSI stack. This content overlay layer enables thedelivery of richer services that rely on underlying elements from all 7layers of the stack to subscribers or end users. Content overlayservices rely on layer 7 protocols such as HTTP or RTSP for transport.

However, regardless of the size of a content network, its ability toserve clients and subscribers is limited by economic realities and otherfactors. Hence, in order to increase the scale, reach and performance ofcontent networks, it is possible to interconnect them. Hence, contentinternetworking is the interconnection of multiple content networks. Inthe networking field, content internetworking is also known as contentdistribution internetworking or content peering.

Content internetworking allows different content networks to cooperateto serve content to end users or user agents. This leads to the abilityof content networks to share resources so as to provide larger scaleand/or reach to each participant than they could otherwise achieve. Inorder to be able to interconnect content networks, various architecturalcomponents must be introduced. In particular, the interconnection ofcontent networks is achieved through the establishment of commoninternetworking gateway. The gateway must be able to provide mechanismsto distribute content or inject content into the networks and must alsobe able to direct user requests between them. The task of directingusers requests to various surrogates among the inter-networked contentnetworks is also called request routing and it is done in a contentrouter. It is also possible to define various accounting andauthorization schemes for financial settlements. In the literature, acontent router is also called a request routing system (RRS).

There are various request routing techniques that could be used within acontent router to direct users request for content among internet-workedcontent networks. At a high-level, these may be classified under: DNSrequest-routing, transport-layer request-routing, and application-layerrequest-routing. However, regardless of the technique that is used forrequest routing, there should exist mechanisms within the content routerthat insures that the task of directing users requests is performed in aloop free manner.

Among the various request routing techniques, the use of DNS basedmechanisms has gained popularity due to the ubiquity of DNS as adirectory service. In DNS based request-routing techniques, the contentrouter acts as a specialized DNS server that is inserted in the DNSresolution process. The content router is capable of returning adifferent set of A, NS or CNAME records based on defined policies,network conditions and cost. Such DNS servers have also been calledIntelligent DNS servers (IDNS). In general, within IDNS, the use ofCNAME redirection techniques is the preferred method of request routing.

Referring to FIG. 1 there is illustrated in a block diagram aninternetworking of a plurality of content distribution networks (CDN).In general, an intelligent DNS (IDNS) system uses a DNS server 18, toredirect, typically via the DNS CNAME response, to an IDNS brokeringserver 20 within a selected CDN, for example CDNB16. The brokering DNSserver 20 monitors the load of other CDNs, CDNC 26, and CDNA 30 withinabet of predefined “regions” (e.g., individual countries). Using the IPaddress of the DNS server 14 making a request, the IDNS brokering server20 maps the DNS server 14 to a region and selects the CDN that servesthat region “best” based on various metrics, for example CDNC 26.

The IDNS brokering server 20 uses CNAME or NS redirection to other CDNs,or it can forward the DNS request directly to a CDN that will respond tothe request directly (not shown in FIG. 1). For example, a client 12initially contacts (1) its local DNS server 14, which (2) contacts theIDNS brokering server 20, via a DNS server 18. The IDNS brokering server20 (3) returns either (A) a CNAME or NS record redirecting to anotherCDN, e.g. GDNC 26, or (B) an A record for an edge server 22 within CDNB16. (The latter is called a “triangular resolution”.) Eventually, (4) anIP address is returned to the client 12, which then requests (5) thecontrol from server 28 and receives (6) the actual content.

Request-routing systems (RRS) present a “black-box” view of theirassociated distribution systems. Since in such an environment no CDNpossesses a global view of all other CDNs, the request-routing systemhas to rely on a peer-to-peer model in which each request-routing systemis only aware of its direct neighbor.

There are two known methods for redirecting a request between twointerconnected request-routing systems. The first method is aninteractive method where a RRS directs the request to the next-hest(neighbor) RRS. This continues until a surrogate is finally selected.The second method is recursive where a RRS directs a request to thenext-best RRS but expects an answer to return to the client. These twomethods are analogous to recursive vs. iterative DNS lookups.

The interactive approach will either find a CDN that will accept therequest or it will return a request failed message. With either result,considerable resources are involved with the messaging that is exchangedin this process.

Referring to FIG. 2 there is illustrated a typical exchange for fourcontent delivery networks. A client 40 makes a request via its localaccess provider that is routed to RRS 42. The RRS 42 then relays therequest to a CDNA 44, who refuses the request. The RRS 42 next relaysthe request to a CDNB 46, who refuses the request. The RRS 42 nextrelays the request to a CDNC 48, who accepts the request. RRS 42 thenprovides the client with the DNS of CDNC 48 via its local accessprovider.

A second method of request redirection is recursive. Here the RRSredirects a request to the next best RRS, but expects the new RRS toreturn a reply to the client. Either of these methods will work if thereis one level of peering. However, if there are multiple levels ofpeering, these simple redirection schemes may lead to looping, where therequest continues to be past among the CDN peers without converging on aCDN that will accept the request.

SUMMARY OF THE INVENTION

An object of the present invention is to provide an improved contentrequest routing method.

Accordingly, the present invention defines peering levels atdistribution of content from a content source then tags each redirectionof requests with an identifier of the CDN forwarding the request to apeer. Advantageously, the peers only require knowledge of nearestneighbours.

Conveniently, a content by CDN matrix is populated at the time ofdistribution.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates in a block diagram a known internetworking of aplurality of content distribution networks;

FIG. 2 illustrates a message exchange for request redirection in theinternetworking of FIG. 1;

FIG. 3 illustrates an ordered peering of CDN using a method of requestredirection in accordance with an embodiment of the present invention;

FIGS. 4 a, 4 b, and 4 c illustrate content distribution tables fornearest peers in accordance with an embodiment of the present invention;and

FIG. 5 illustrates in a flow chart the method of request redirection inaccordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 3 there is illustrated an ordered peering of contentdistribution networks (CDN) using a method of redistribution inaccordance with an embodiment of the present invention. The orderedpeering 50 includes content distribution network (CDN), CDNA 60, CDNB70, CDNC 80, CDND 90, CDNE 100 ordered in peer levels L1 110 and L2 120.Each CDN is coupled to its nearest peer hence CDNA 60 is coupled via 62its level 1 peer CDNB 70 and via 64 to its level 2 peer CDND 90.Similarly, CDNB 70 is coupled via 72 to its level 1 peer CDNC 80 and toits level 2 peers CDND 90 and CDNE 100, via 74 and 76, respectively. AndCDNC 90 is coupled to a level 2 peer CDNE 100 via 92.

In operation, a client 130 sends a request 132 addressed {www.a.com/α}for content α to CDNA 60. However, CDNA 60 does not currently have thecapacity to deliver this content. So it refers to its contentdistribution table 134 to see if the neighboring peers are able toprovide this content. The CDNA 60 sees that it has a level I peer, CDNB70 that has the α content and forwards the request to CDNB 70 addressed(www.a.b.com/α).

The CDNB 70 is also too busy to handle the request and determines fromits distribution table 138 that its level 1 peer CDNC 80 does not havethe content α, however its level 2 peer CDND 90 does. In this case, theCDNB 70 forwards the request 140 addressed, www.a.b.d.com/α, to the CDND90. The CDND 90, is also too busy to handle the request so consults itsdistribution table 142 and determines that the only two peers havingcontent α are CDNA 60 and CDNB 70, but the address ww.a.b.d.com/α showsthat these two peers have already refused the request. At this pointCDND 90 returns a network busy request refused message 144 to the client130.

Referring to FIGS. 4 a, 4 b, and 4 c, there is illustrated the contentdistribution tables of CDN A, B, and D, respectively of FIG. 3. Eachdistribution table is populated at the time of distribution of thecontent. Also at the time of content distribution, peering levels areestablished. In the present example only two levels, level 1 and level2, are shown. Also for convenience the content distribution tables showa single table for a plurality of different content. Variousimplementations of content tables are possible. For example contenttables could include all content from a particular content source.Alternatively, a table could exist for each content.

In the example above, the initial CDN peer was CDNA. If the CDN peer hadbeen CDN B, the addressing of the re-routed request would bewww.b.nextpeer.com. Hence, the re-routed request has the general form:

-   -   www.<1stpeer>.<next peer>.<peer of next peer>.com.

Referring to FIG. 5, there is illustrated in a flow chart the requestredirection method in accordance with an embodiment of the presentinvention. The method begins with a decision block 200 asking whetherthe address CDN has capacity to fill the content request. If YES, aprocess block 202 sends an affirmation reply to the client and contenttransfer begins. If NO, a process block 204 reviews a distribution tableto determine what peer has the requested content. A decision block 206determines if a neighbour peer has content α. If no neighbor peer hasthe content, a refuse request message is sent to the client, asrepresented by a process block 208. lf a neighbor peer is found to havethe content, the request is forwarded, as represented by a process block210, appending the peers address to the previous address. In this way,each peer receiving the request knows where the request came from, andwhere it has been previously. This becomes increasingly important as thenumber of redirections required increases and as the number of peerlevels increase.

What is claimed is:
 1. A method of redirecting content requests amongpeer content distribution network nodes, the method comprising:providing, at a first content distribution network node, informationidentifying content contained on each peer content distribution networknode of the first content distribution network node; receiving, at thefirst content distribution network node, a content request comprising anidentification of requested content; responsive to a determination thatthe first content distribution network node will refuse the contentrequest, determining, from the information identifying the contentcontained on each peer content distribution network node of the firstcontent distribution network node, whether a second content distributionnetwork node is a candidate for providing the requested content; andwhen the second content distribution network node is the candidate forproviding the requested content, redirecting the content request fromthe first content distribution network node to the second contentdistribution network node.
 2. The method of claim 1, wherein: when thecontent request received by the first content distribution network nodehas been refused by at least one refusing content distribution networknode, the content request received by the first content distributionnetwork node comprises information identifying the at least one refusingcontent distribution network node; and determining whether the secondcontent distribution network node is the candidate for providing therequested content comprises determining, from the informationidentifying the content contained on each peer content distributionnetwork node of the first content distribution network node and from theinformation identifying the at least one refusing content distributionnetwork node, whether the second content distribution network nodecontains the requested content and is not a refusing contentdistribution network node.
 3. The method of claim 2, wherein determiningwhether the second content distribution network node is the candidatefor providing the requested content comprises: determining, from theinformation identifying the content contained on each peer contentdistribution network node of the first content distribution network nodeand from the information identifying the at least one refusing contentdistribution network node, a plurality of peer content distributionnetwork nodes that contain the requested content and that are notrefusing content distribution network nodes; and selecting one of theplurality of peer content distribution network nodes as the secondcontent distribution network node.
 4. The method of claim 3, whereinredirecting the content request from the first content distributionnetwork node to the second content distribution network node comprisesadding, to the information identifying the at least one refusing contentdistribution network node of the redirected content request, informationidentifying the first content distribution network node as a refusingcontent distribution network node.
 5. The method of claim 4, wherein:the content request received by the first content distribution networknode comprises an address associated with the first content distributionnetwork node; the information identifying the at least one refusingcontent distribution network node is encoded in the address; and adding,to the information identifying the at least one refusing contentdistribution network node of the redirected content request, theinformation identifying the first content distribution network node as arefusing content distribution network node comprises adding informationidentifying the first content distribution network node to the addressof the content request redirected to the second content distributionnetwork node.
 6. The method of claim 5, wherein the address comprises aset of refusing content distribution network node identifiers.
 7. Themethod of claim 6, wherein the set is ordered according to an order inwhich the refusing content distribution network nodes refused thecontent request.
 8. The method of claim 6, wherein the address is auniform resource locator.
 9. The method of claim 2, wherein: the contentrequest received by the first content distribution network nodecomprises an address associated with the first content distributionnetwork node; and the information identifying the at least one refusingcontent distribution network node is encoded in the address.
 10. Themethod of claim 9, wherein the address comprises a set of refusingcontent to distribution network node identifiers.
 11. The method ofclaim 10, wherein the set is ordered according to an order in which therefusing content distribution network nodes refused the content request.12. The method of claim 10, wherein the address is a uniform resourcelocator.
 13. The method of claim 1, wherein determining whether thesecond content distribution network node is the candidate for providingthe requested content comprises determining that no peer contentdistribution network node is a candidate for providing the requestedcontent.
 14. The method of claim 13, comprising sending a contentrequest refusal message indicating that the requested content will notbe provided.
 15. The method of claim 13, wherein: when the contentrequest received by first content distribution network node has beenrefused by at least one refusing content distribution network node, thecontent request received by the first content distribution network nodecomprises information identifying the at least one refusing contentdistribution network node; and determining that no peer contentdistribution node is a candidate for providing the requested contentcomprises determining, from the information identifying the contentcontained on each peer content distribution node of the first contentdistribution node and from the information identifying the at least onerefusing content distribution network node, that no peer contentdistribution network node both contains the requested content and is nota refusing content distribution network node.
 16. The method of claim15, wherein: the content request received by the first contentdistribution network node comprises an address associated with the firstcontent distribution network node; and the information identifying theat least one refusing content distribution network node is encoded inthe address.
 17. The method of claim 16, wherein the address comprises aset of refusing content distribution network node identifiers.
 18. Themethod of claim 17, wherein the set is ordered according to an order inwhich the refusing content distribution network nodes refused thecontent request.
 19. The method of claim 17, wherein the address is auniform resource locator.
 20. The method of claim 1, wherein redirectingthe content request from the first content distribution network node tothe second content distribution network node comprises adding to thecontent request an indication that the content request was refused bythe first content distribution network node.
 21. The method of claim 1,wherein the content request received by the first content distributionnetwork node comprises an address associated with the first contentdistribution network node.
 22. The method of claim 1, wherein providingthe information identifying the content contained on each peer contentdistribution network node of the first content distribution network nodecomprises providing at least one distribution table at the first contentdistribution network node, the at least one distribution tableassociating content items with peer content distribution network nodescontaining the content items.
 23. The method of claim 22, whereinproviding the at least one distribution table at the first contentdistribution network node comprises providing a separate distributiontable for each of a plurality of content items on the first contentdistribution network node.
 24. The method of claim 22, wherein: the atleast one content distribution table at the first content distributionnetwork node lists the peer content distribution network nodes accordingto a peering hierarchy; and when a plurality of peer contentdistribution network nodes contains the requested content and does notcomprise refusing content distribution network nodes, the first contentdistribution network node preferentially selects the second contentdistribution network node based on the peering hierarchy.